Skip to main content

添加新的必填输入字段

变更场景

您希望更改触发器、动作或搜索中一个或多个表单字段输入的键。

对用户的影响

修改表单字段输入的键是一种破坏性变更。除非采取预防措施,否则更改现有表单字段输入的键会中断该字段在相关步骤中的映射。之前映射的值将被丢弃,从而导致数据丢失和/或错误。

最佳实践

  • 避免更改表单字段输入的键

如果您的 API 端点需要在请求中使用不同的属性,请考虑更改属性键,而不是修改表单字段输入的键。表单字段输入的键并不一定需要与 API 预期的属性匹配。假设您有一个键为 first_name 的表单字段输入(右侧),并使用同名属性 first_name(左侧)将该字段的值发送到您的 API:

Platform UI vs CLI 比较

body: {
first_name: bundle.inputData.first_name // 原始
}

然后,您的 API 变更,并期望请求属性为 firstname(一个单词)。如下所示,您可以根据需要更改请求属性键(左侧)为 firstname,同时仍然基于其原始键 (first_name) 引用表单字段输入(右侧):

Platform UI vs CLI 比较

body: {
firstname: bundle.inputData.first_name // 新增 - 请求键和字段键可以不同
}
  • 处理旧键和新键

如果无法简单地更改硬编码的请求属性的键:我们建议您设计触发器或动作来同时处理旧键和新键。使用上述示例,假设您不是硬编码请求属性,而是将 bundle.inputData 扩展到 API 请求的 body 中,从而使字段键和请求属性之间存在一对一关系。

body: {
...bundle.inputData // 原始 - 请求键与字段键绑定
}

不要更改表单字段输入的键,而是使用代码模式(Platform UI)或代码(Platform CLI)来修改请求。例如,下面我们创建一个新对象 payload,它包含 bundle.inputData 中的所有字段以及更新后的属性 firstname。然后删除旧属性 first_name,并在请求中发送更新后的对象:

// 复制 bundle.inputData,并添加更新后的属性
const payload = { ...bundle.inputData, firstname: bundle.inputData.first_name };

// 删除旧属性
delete payload.first_name;

body = {
...payload, // 发送更新后的 payload
};

通过这种方法或类似方法,您可以根据需要更改请求,而无需修改字段键,从而避免破坏用户的映射。